15.11.27 :
저번에는 단순히 소스만 복붙하면서 만들다가 벽에 부딪혀 9월쯤 포기했던
NULL OS를 폐기하고 다시 시작하기로 했다.

전과 달리 32비트 인텔 프로세서 기반으로 제작을 하려고 하고,
오늘은 부트로더, 보호모드 활성화,  C 커널 진입 정도만 만들어뒀다.
이번에는 소스는 다 이해하고 있고, 그만큼 내가 손을 댈만한 부분이 더
많아지는 것 같다.

15.11.28 :
오늘은 간단하게 C 커널과 빌드 스크립트 정도만 추가하고
저번에 만든 보호모드, C 커널 진입 부분을 부트로더쪽 파일과 합쳤다.

빌드 스크립트는 저번에 사용한 kkamagui 님께서 만든 makefile 스크립트를
사용했다.

현재 보호모드 부분부터 0x10000 부분에 로드되고 하위 64KB는 커널 스택으로
설정했다.

15.12.1~12.14 은 잠시 다른 활동을 좀 더 했다.

15.12.15~12.22 : 
일주일동안 ISR(인터럽트 서비스 루틴) 을 구현하는데 엄청 삽질을했다.
결국에는 어디를 놓쳤는지 감이 잡히지 않아 어셈블리로 전환했고

PIC를 활성화 시킨 후에 인터럽트 번호를 예외번호 바로 다음으로
설정했다.


그러고 나서 아무것도 안하는 ISR을 배치시켰다.

그리고 ISR의 크기가 커서 C 커널을 0x10A00 이후로 배치시켰다.
커널 뒤에 ISR을 넣을까 생각도 해봤지만 그러기엔
커널의 크기가 얼마나 커질지 몰라서 앞으로 했다.


15.12.23~12.28 : 
페이징에 관한걸 책부터 인터넷 문서까지 샅샅히 뒤지고
이론적인 부분과 소스가 제공되는 부분을 찾았다.

15.12.29 :
소스 부분을 찾긴 했는데 이론적인 부분에서 배우지 않았던게 나오고
설명이 없어서 모르는 소스를 쓰긴 꺼려져서 오늘은 삽질만 한듯 하다.

15.12.30~16.1.6 동안은 [리눅스 커널 심층 분석] 책을 시키고 그 동안은
리버싱, 파이썬을 좀 더 팠다.
원래 책이 더 일찍 왔어야 했는데 택배기사 아저씨가 몇일 더 늦게 주셨다 -_-;;

16.1.7 :
페이징 관련된 부분을 다른 소스를 참고하면서 만들고 있고
오늘은 페이징정도만 만들려고 한다.

그리고 페이징의 몇몇 이론적인 부분을 문서화 시켰다.

다른 사람들이 나중에 참여하기 편하게 하는게 좋으니까
다른 부분도 왜 이런식으로 구현했는지랑 이론적인 부분을
앞으로 만드는 부분, 전에 만든 부분을 문서화하려고 한다.

그리고 혹시 모르니 언어별로 구분을 했다 ㅋ
나중에 외국인에게 소스를 배포할 때가 생기면 주석이랑
문서를 영어로 번역해두는 것도 좋을듯 하다 ㅋㅋ

16.1.10 :
페이징의 기본 기능을 완성했다(주소 매핑/해제 함수와 초기화 정도만).
이제 페이지 폴트 핸들러를 만들고
메모리 관리자(페이지 할당자)를 간단하게 만든 후에
멀티 태스킹을 시작하고 나중에
힙을 만들기 위해 슬랩 할당자를 만들어야겠다.
